package com.xuecheng.content.convert;

import com.xuecheng.api.conttent.mordle.dto.CourseBaseDTO;
import com.xuecheng.api.conttent.mordle.vo.CourseBaseVo;
import com.xuecheng.content.entity.CourseBase;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @author lenovo
 * date: 2022/6/16 23:16
 * Description:
 */
@Mapper
public interface CourseBaseConvert {
    CourseBaseConvert INSTANCE = Mappers.getMapper(CourseBaseConvert.class);


    /**
     * @param courseBase CourseBase数据转化为dto数据
     * @return 传输到前端的dto数据
     */
    @Mapping(source = "id",target = "courseBaseId")
    CourseBaseDTO entity2dto(CourseBase courseBase);

    /**
    *@Param [courseBase]
    *@Return CourseBaseDTO>
    *@Description 将pos转为dtos数据
    *@author lenovo
    *@Date 14:35
     * 注释：集合的方法会依赖于单个数据转换的方法，Mapping注解是使用在
     * 单个数据转换方法上的，不是在集合方法上来使用
    **/
    List<CourseBaseDTO> entitys2dtos(List<CourseBase> courseBase);

    /**
    *@Param [dto]
    *@Return CourseBase
    *@Description 将前端传入的dto数据转化为CourseBase数据
    *@author lenovo
    *@Date 14:24
    **/
    @Mapping(source = "courseBaseId",target = "id")
    CourseBaseDTO vo2dto(CourseBaseVo vo);

    /**
    *@Param [dtos]
    *@Return CourseBase>
    *@Description 将前端传入的dto集合数据转化为CourseBase数据集合
    *@author lenovo
    *@Date 14:28
    **/
    List<CourseBaseDTO> vos2dtos(List<CourseBaseVo> vos);
}